package com.zackeus.xupdate.entity;

import androidx.annotation.NonNull;

/**
 * 版本更新信息实体接口
 * @name: LibraryUpdateEntity
 * @author: zz
 * @date: 2022/11/23
 */
public interface LibraryUpdateEntity {

    /**
     * 版本号
     * @return
     */
    int getVersionCode();

    /**
     * 版本名称
     * @return
     */
    String getVersionName();

    /**
     * 更新内容
     * @return
     */
    String getContent();

    //============ 下载信息 ============//

    /**
     * APK 下载地址
     * @return
     */
    String getUrl();

    /**
     * 文件的加密值，用于校验, 也可用于断点下载
     * @return
     */
    String getEncrypt();

    /**
     * 文件的大小【单位：KB】
     * @return
     */
    long getSize();

    /**
     * 是否有新版本更新
     * @return
     */
    boolean isHasUpdate();

    /**
     * 是否强制更新
     * @return
     */
    boolean isForce();

    /**
     * 是否可忽略
     * @return
     */
    boolean isIgnorable();

    /**
     * 获取APK保存文件名
     * @return
     */
    @NonNull
    String getFileName();

    /**
     * 获取APK保存目录
     * @return
     */
    @NonNull
    String getFileDir();

}
